#include <string>
#include <cstring>
#include <vector>
using namespace std;
/*
 * @lc app=leetcode.cn id=6 lang=cpp
 *
 * [6] Z 字形变换
 */

// @lc code=start
class Solution {
public:
    string convert(string s, int numRows) {
        if (numRows == 1) return s;
        vector<string> container(numRows);
        bool flag = false; int i = 0;
        for (auto x: s) {
            container[i].push_back(x);
            if (flag && i == 0) {
                flag = false; i++;
            }
            else if (!flag && i == numRows - 1) {
                flag = true; i--;
            }
            else if (flag) {
                i--;
            }
            else i++;
        }
        string res;
        for (int i = 0; i < numRows; i++) res.append(container[i]);
        return res;
    }
};
// @lc code=end

